package com.mdb.open.epay.domain.dto.epay;

import cn.hutool.core.date.DatePattern;
import com.mdb.bc.api.data.DataObjectBase;
import com.mdb.bc.validator.annotaion.validation.DateFormat;
import com.mdb.bc.validator.annotaion.validation.Split;
import com.mdb.open.epay.enums.type.OrderQueryBizTypeEnum;
import com.mdb.open.epay.enums.type.OrderQuerySearchTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 * @author liuyi
 * @date 2019/11/14
 **/
@Data
@ApiModel(description="支付查询dto对象")
public class QueryOrderDto extends DataObjectBase {

    private static final long serialVersionUID = 1L;

    /**
     * 查詢類型
     */
    @ApiModelProperty(value = "訂單查詢類型")
    @NotNull(message = "訂單查詢類型不能为空")
    private OrderQuerySearchTypeEnum searchType;

    /**
     * 業務類型
     */
    @ApiModelProperty(value = "業務類型")
    @NotNull(message = "業務類型不能为空")
    private OrderQueryBizTypeEnum bizType;

    /**
     * 交易開始時間 yyyyMMddHHmmss
     */
    @ApiModelProperty(value = "交易開始時間yyyyMMddHHmmss")
    @DateFormat(format = DatePattern.PURE_DATETIME_PATTERN, message = "交易開始時間錯誤")
    private String beginDate;

    /**
     * 交易結束時間
     */
    @ApiModelProperty(value = "交易結束時間yyyyMMddHHmmss")
    @DateFormat(format = DatePattern.PURE_DATETIME_PATTERN, message = "交易結束時間錯誤")
    private String endDate;

    /**
     * 訂單號列表
     */
    @ApiModelProperty(value = "訂單號列表,逗号分隔")
    @NotBlank(message = "訂單號列表不能为空")
    @Size(max = 640)
    @Split(maxSize = 20)
    private String orderNoList;
}